using System;
using System.Collections.Generic;
using System.Text;
namespace MyDMS.BusinessLayer
{
	public class UserInfo: BusinessObjectBase
	{

		#region InnerClass
		public enum UserInfoFields
		{
			User_Code,
			User_Name,
			User_Password,
			FirstName,
			LastName,
			Email_Address,
			Sex,
			About_Me,
			Activities,
			Interests,
			Street_Address,
			City,
			Country,
			ZIP_Code,
			TimeZone_Code,
			Online_Status,
			JD_Code,
			Department_Code,
			Is_Approved,
			Approved_By,
			Created_By,
			Is_Active,
			Creation_Date,
			Updation_Date
		}
		#endregion

		#region Data Members

			int _user_Code;
			string _user_Name;
			string _user_Password;
			string _firstName;
			string _lastName;
			string _email_Address;
			string _sex;
			string _about_Me;
			string _activities;
			string _interests;
			string _street_Address;
			string _city;
			string _country;
			string _zIP_Code;
			int _timeZone_Code;
			string _online_Status;
			int _jD_Code;
			int _department_Code;
			bool? _is_Approved;
			int? _approved_By;
			int? _created_By;
			bool? _is_Active;
			DateTime? _creation_Date;
			DateTime? _updation_Date;

		#endregion

		#region Properties

		public int  User_Code
		{
			 get { return _user_Code; }
			 set
			 {
				 if (_user_Code != value)
				 {
					_user_Code = value;
					 PropertyHasChanged("User_Code");
				 }
			 }
		}

		public string  User_Name
		{
			 get { return _user_Name; }
			 set
			 {
				 if (_user_Name != value)
				 {
					_user_Name = value;
					 PropertyHasChanged("User_Name");
				 }
			 }
		}

		public string  User_Password
		{
			 get { return _user_Password; }
			 set
			 {
				 if (_user_Password != value)
				 {
					_user_Password = value;
					 PropertyHasChanged("User_Password");
				 }
			 }
		}

		public string  FirstName
		{
			 get { return _firstName; }
			 set
			 {
				 if (_firstName != value)
				 {
					_firstName = value;
					 PropertyHasChanged("FirstName");
				 }
			 }
		}

		public string  LastName
		{
			 get { return _lastName; }
			 set
			 {
				 if (_lastName != value)
				 {
					_lastName = value;
					 PropertyHasChanged("LastName");
				 }
			 }
		}

		public string  Email_Address
		{
			 get { return _email_Address; }
			 set
			 {
				 if (_email_Address != value)
				 {
					_email_Address = value;
					 PropertyHasChanged("Email_Address");
				 }
			 }
		}

		public string  Sex
		{
			 get { return _sex; }
			 set
			 {
				 if (_sex != value)
				 {
					_sex = value;
					 PropertyHasChanged("Sex");
				 }
			 }
		}

		public string  About_Me
		{
			 get { return _about_Me; }
			 set
			 {
				 if (_about_Me != value)
				 {
					_about_Me = value;
					 PropertyHasChanged("About_Me");
				 }
			 }
		}

		public string  Activities
		{
			 get { return _activities; }
			 set
			 {
				 if (_activities != value)
				 {
					_activities = value;
					 PropertyHasChanged("Activities");
				 }
			 }
		}

		public string  Interests
		{
			 get { return _interests; }
			 set
			 {
				 if (_interests != value)
				 {
					_interests = value;
					 PropertyHasChanged("Interests");
				 }
			 }
		}

		public string  Street_Address
		{
			 get { return _street_Address; }
			 set
			 {
				 if (_street_Address != value)
				 {
					_street_Address = value;
					 PropertyHasChanged("Street_Address");
				 }
			 }
		}

		public string  City
		{
			 get { return _city; }
			 set
			 {
				 if (_city != value)
				 {
					_city = value;
					 PropertyHasChanged("City");
				 }
			 }
		}

		public string  Country
		{
			 get { return _country; }
			 set
			 {
				 if (_country != value)
				 {
					_country = value;
					 PropertyHasChanged("Country");
				 }
			 }
		}

		public string  ZIP_Code
		{
			 get { return _zIP_Code; }
			 set
			 {
				 if (_zIP_Code != value)
				 {
					_zIP_Code = value;
					 PropertyHasChanged("ZIP_Code");
				 }
			 }
		}

		public int  TimeZone_Code
		{
			 get { return _timeZone_Code; }
			 set
			 {
				 if (_timeZone_Code != value)
				 {
					_timeZone_Code = value;
					 PropertyHasChanged("TimeZone_Code");
				 }
			 }
		}

		public string  Online_Status
		{
			 get { return _online_Status; }
			 set
			 {
				 if (_online_Status != value)
				 {
					_online_Status = value;
					 PropertyHasChanged("Online_Status");
				 }
			 }
		}

		public int  JD_Code
		{
			 get { return _jD_Code; }
			 set
			 {
				 if (_jD_Code != value)
				 {
					_jD_Code = value;
					 PropertyHasChanged("JD_Code");
				 }
			 }
		}

		public int  Department_Code
		{
			 get { return _department_Code; }
			 set
			 {
				 if (_department_Code != value)
				 {
					_department_Code = value;
					 PropertyHasChanged("Department_Code");
				 }
			 }
		}

		public bool?  Is_Approved
		{
			 get { return _is_Approved; }
			 set
			 {
				 if (_is_Approved != value)
				 {
					_is_Approved = value;
					 PropertyHasChanged("Is_Approved");
				 }
			 }
		}

		public int?  Approved_By
		{
			 get { return _approved_By; }
			 set
			 {
				 if (_approved_By != value)
				 {
					_approved_By = value;
					 PropertyHasChanged("Approved_By");
				 }
			 }
		}

		public int?  Created_By
		{
			 get { return _created_By; }
			 set
			 {
				 if (_created_By != value)
				 {
					_created_By = value;
					 PropertyHasChanged("Created_By");
				 }
			 }
		}

		public bool?  Is_Active
		{
			 get { return _is_Active; }
			 set
			 {
				 if (_is_Active != value)
				 {
					_is_Active = value;
					 PropertyHasChanged("Is_Active");
				 }
			 }
		}

		public DateTime?  Creation_Date
		{
			 get { return _creation_Date; }
			 set
			 {
				 if (_creation_Date != value)
				 {
					_creation_Date = value;
					 PropertyHasChanged("Creation_Date");
				 }
			 }
		}

		public DateTime?  Updation_Date
		{
			 get { return _updation_Date; }
			 set
			 {
				 if (_updation_Date != value)
				 {
					_updation_Date = value;
					 PropertyHasChanged("Updation_Date");
				 }
			 }
		}


		#endregion

		#region Validation

		internal override void AddValidationRules()
		{
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("User_Code", "User_Code"));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("User_Name", "User_Name"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("User_Name", "User_Name",20));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("User_Password", "User_Password"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("User_Password", "User_Password",50));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("FirstName", "FirstName"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("FirstName", "FirstName",50));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("LastName", "LastName"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("LastName", "LastName",50));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Email_Address", "Email_Address"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Email_Address", "Email_Address",200));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Sex", "Sex",10));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("About_Me", "About_Me",500));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Activities", "Activities",500));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Interests", "Interests",500));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Street_Address", "Street_Address",500));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("City", "City",100));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Country", "Country"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Country", "Country",100));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("ZIP_Code", "ZIP_Code"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("ZIP_Code", "ZIP_Code",20));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("TimeZone_Code", "TimeZone_Code"));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Online_Status", "Online_Status"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Online_Status", "Online_Status",10));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("JD_Code", "JD_Code"));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Department_Code", "Department_Code"));
		}

		#endregion

	}
}
